Imports System.Data.SqlClient
Imports System
Imports System.Data
Imports System.Configuration
Public Class DLocalidades
    'agrega un tutor
    Dim conn As New Datos.DConexion
    Public Function cargarLocalidades(ByVal item As Entidades.ELocalidad) As Boolean
        Dim band As Boolean
        Dim com As New SqlCommand
        Try
            conn.abrirConexion()
            com.Connection = conn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "CargarLocalidad"
            'carga los parametros
            com.Parameters.AddWithValue("@localidad", item.localidad)
            'executa el comando
            com.ExecuteNonQuery()
            band = True
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
        'cierra conexion
        conn.cerrarConexion()
        Return band
    End Function

    Public Function modificarLocalidad(ByVal localidad As Entidades.ELocalidad) As Boolean
        Dim com As New SqlCommand
        Dim band As Boolean
        Try
            conn.abrirConexion()
            com.Connection = conn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "ModificarLocalidad"
            'carga los parametros
            com.Parameters.AddWithValue("@codigo", localidad.idLocalidad)
            com.Parameters.AddWithValue("@localidad", localidad.localidad)
            com.Parameters.AddWithValue("@estado", localidad.estado)
            'executa el comando
            com.ExecuteNonQuery()
            band = True
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
        'cierra conexion
        conn.cerrarConexion()
        Return band
    End Function

    'SOBRECARGADO: BUSCA SEGUN UNA DESCRIPCION Y CONDICION
    Public Function buscarLocalidad(ByVal localidad As Entidades.ELocalidad, ByVal cond As Boolean) As List(Of Entidades.ELocalidad)
        Dim com As New SqlCommand
        Dim coleccion As New List(Of Entidades.ELocalidad)
        Try
            conn.abrirConexion()
            com.Connection = conn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "BuscarLocalidadxCond"
            com.Parameters.AddWithValue("@localidad", localidad.localidad)
            com.Parameters.AddWithValue("@condicion", cond)
            Dim dr As SqlDataReader
            dr = com.ExecuteReader
            Do While dr.Read
                'creamos un objeto
                Dim objeto As New Entidades.ELocalidad
                objeto.idLocalidad = dr("idLocalidad")
                objeto.localidad = dr("localidad")
                objeto.estado = dr("estado")
                coleccion.Add(objeto)
                objeto = Nothing
            Loop
            'retornamos los valores encontrados
            conn.cerrarConexion()
            Return coleccion
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            coleccion = Nothing
        End Try
    End Function

    'sobrecargado: BUSCA LA LOCALIDAD SEGUN UNA DESCRIPCION
    Public Function buscarLocalidad(ByVal localidad As Entidades.ELocalidad) As List(Of Entidades.ELocalidad)
        Dim com As New SqlCommand
        Dim coleccion As New List(Of Entidades.ELocalidad)
        Try
            conn.abrirConexion()
            com.Connection = conn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "BuscarLocalidad"
            com.Parameters.AddWithValue("@localidad", localidad.localidad)
            Dim dr As SqlDataReader
            dr = com.ExecuteReader
            Do While dr.Read
                'creamos un objeto
                Dim objeto As New Entidades.ELocalidad
                objeto.idLocalidad = dr("idLocalidad")
                objeto.localidad = dr("localidad")
                objeto.estado = dr("estado")
                coleccion.Add(objeto)
                objeto = Nothing
            Loop
            conn.cerrarConexion()
            'retornamos los valores encontrados
            Return coleccion
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            coleccion = Nothing
        End Try
    End Function

    Public Function buscarLocalidades(ByVal cond As Boolean) As List(Of Entidades.ELocalidad)
        Dim com As New SqlCommand
        Dim coleccion As New List(Of Entidades.ELocalidad)
        Try
            conn.abrirConexion()
            com.Connection = conn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "BuscarLocalidadesxCond"
            com.Parameters.AddWithValue("@condicion", cond)
            Dim dr As SqlDataReader
            dr = com.ExecuteReader
            Do While dr.Read
                'creamos un objeto
                Dim objeto As New Entidades.ELocalidad
                objeto.idLocalidad = dr("idLocalidad")
                objeto.localidad = dr("localidad")
                objeto.estado = dr("estado")
                coleccion.Add(objeto)
                objeto = Nothing
            Loop
            conn.cerrarConexion()
            'retornamos los valores encontrados
            Return coleccion
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            coleccion = Nothing
        End Try
    End Function

    'sobrecargado
    Public Function buscarLocalidades() As List(Of Entidades.ELocalidad)
        Dim com As New SqlCommand
        Dim coleccion As New List(Of Entidades.ELocalidad)
        Try
            conn.abrirConexion()
            com.Connection = conn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "BuscarLocalidades"
            Dim dr As SqlDataReader
            dr = com.ExecuteReader
            Do While dr.Read
                'creamos un objeto
                Dim objeto As New Entidades.ELocalidad
                objeto.idLocalidad = dr("idlocalidad")
                objeto.localidad = dr("localidad")
                objeto.estado = dr("estado")
                coleccion.Add(objeto)
                objeto = Nothing
            Loop
            'retornamos los valores encontrados
            dr.Close()
            com.Dispose()
            conn.cerrarConexion()
            Return coleccion
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            coleccion = Nothing
        End Try
    End Function

    Public Function traerProximoCodigo() As Integer
        Dim com As New SqlCommand
        Dim proximo As Integer
        Try
            conn.abrirConexion()
            com.Connection = conn.obtenerConexion
            com.CommandType = CommandType.StoredProcedure
            com.CommandText = "TraerProximoCodLocalidad"
            Dim dr As SqlDataReader
            dr = com.ExecuteReader
            Do While dr.Read
                proximo = dr("proxcodigo")
            Loop
            dr.Close()
            com.Dispose()
            conn.cerrarConexion()
            Return proximo
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
    End Function
End Class